package com.mc.api.mapper;

import com.mc.api.domain.Clt;
import com.mc.api.domain.CltResult;
import com.mc.api.domain.CltResultGermplasm;
import com.mc.api.domain.CltResultSpecimen;
import com.mc.api.domain.page.CltResultPage;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface CltResultMapper {
    /**
     * 查询采记录
     *
     * @param id 采记录ID
     * @return 采记录
     */
    public CltResult selectCltResultById(String id);

    /**
     * 查询采记录列表
     *
     * @param cltResultPage 采记录
     * @return 采记录集合
     */
    public List<CltResult> selectCltResultPage(CltResultPage cltResultPage);

    /**
     * 新增采记录
     *
     * @param cltResult 采记录
     * @return 结果
     */
    public int insertCltResult(CltResult cltResult);

    /**
     * 新增采集标本
     *
     * @param cltResultGermplasm 采集标本
     * @return 结果
     */
    public int insertCltResultGermplasm(CltResultGermplasm cltResultGermplasm);

    /**
     * 新增采集种质
     *
     * @param cltResultSpecimen 采集种质
     * @return 结果
     */
    public int insertCltResultSpecimen(CltResultSpecimen cltResultSpecimen);

    /**
     * 更新鉴定
     *
     * @param id 采集编号
     * @return 结果
     */
    public void updateIsAuthenticate(String id);

    /**
     * 根据任务ID查询采集信息 分页
     * @return
     */
    public List<CltResult> selectCltResultByTaskIDPage(String taskId);

    /**
     * 根据任务ID查询采集信息
     * @return
     */
    public List<CltResult> selectCltResultByTaskID(String taskId);

    /**
     * 根据采集ID查询采集种质信息
     */
    public CltResultGermplasm selectCltResultGermplasm(String cltId);
    /**
     * 根据采集ID查询采集标本信息
     */
    public CltResultSpecimen selectCltResultSpecimen(String cltId);

    /**
     * 更新采集信息
     * @param cltResult
     * @return
     */
    public int updateCltResult(CltResult cltResult);

    /**
     * 采集统计
     * @param cltResult
     * @return
     */
    public int countCltResult(Clt cltResult);
}
